home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / Everything / EverythingApp.c < prev    next >
Encoding:
Text File  |  1998-10-29  |  3.1 KB  |  191 lines  |  [TEXT/CWIE]

  1. // EverythingApp.c -- application-level functions
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Events.h>
  7. #include <Lists.h>
  8. #include <Menus.h>
  9. #include <TextEdit.h>
  10. #include <stdlib.h>
  11.  
  12. #include "ResourceDefs.h"
  13. #include "Dispatcher.h"
  14.  
  15. #include "ModelessButtons.h"
  16. #include "ModelessCheckboxes.h"
  17. #include "ModelessRadios.h"
  18. #include "ModelessText.h"
  19. #include "ModelessStuff.h"
  20. #include "ModelessBars.h"
  21. #include "AboutDialog.h"
  22. #include "EverythingEngine.h"
  23. #include "EverythingDoc.h"
  24. #include "AMWindow.h"
  25. #include "EverythingApp.h"
  26.  
  27. static    void    DoModelessButtons    (AMApp*        self);
  28. static    void    DoModelessCheckboxes    (AMApp*        self);
  29. static    void    DoModelessRadios    (AMApp*        self);
  30. static    void    DoModelessText    (AMApp*        self);
  31. static    void    DoModelessStuff    (AMApp*        self);
  32. static    void    DoModelessMoreStuff    (AMApp*        self);
  33. static    void    DoInvokeAbout    (AMApp*        self);
  34.  
  35. //----------
  36. EverythingApp*        NewEverythingApp ()
  37. {
  38.     EverythingApp*        app;
  39.  
  40.     app = (EverythingApp*)malloc (sizeof (EverythingApp));
  41.     EverythingApp_Init (app);
  42.     SetClassID (app, classEverythingApp);
  43.  
  44.     return app;
  45. }
  46.  
  47. //----------
  48. void    DeleteApp (
  49.     AMApp*        app)
  50. {
  51.     EverythingApp_Free ((EverythingApp*)app);
  52.     free (app);
  53. }
  54.  
  55. /*----------*/
  56. void    EverythingApp_Init (
  57.     EverythingApp*        self)
  58. {
  59.     AMApp_Init ((AMApp*) self);
  60.  
  61.     self->super.mNumOpenTypes = 1;
  62.     self->super.mOpenTypeList [0] = kFileType;
  63. }
  64.  
  65. /*----------*/
  66. void    EverythingApp_Free (
  67.     EverythingApp*        self)
  68. {
  69.     AMApp_Free ((AMApp*) self);
  70. }
  71.  
  72. /*----------*/
  73. AMDoc*        MakeDoc (
  74.     AMApp*        self)
  75. {
  76.     EverythingDoc*        doc = NewEverythingDoc ();
  77.  
  78.     if (doc != nil) {
  79.         //? add to list of docs
  80.     }
  81.  
  82.     return (AMDoc*) doc;
  83. }
  84.  
  85. /*----------*/
  86. void    OpenApp (
  87.     AMApp*        self)
  88. {
  89.     DoNew (self);
  90. }
  91.  
  92. //----------
  93. void    DoModelessButtons (
  94. AMApp*        self)
  95. {
  96.     ModelessButtons_Show ();
  97. }
  98.  
  99. //----------
  100. void    DoModelessCheckboxes (
  101. AMApp*        self)
  102. {
  103.     ModelessCheckboxes_Show ();
  104. }
  105.  
  106. //----------
  107. void    DoModelessRadios (
  108. AMApp*        self)
  109. {
  110.     ModelessRadios_Show ();
  111. }
  112.  
  113. //----------
  114. void    DoModelessText (
  115. AMApp*        self)
  116. {
  117.     ModelessText_Show ();
  118. }
  119.  
  120. //----------
  121. void    DoModelessStuff (
  122. AMApp*        self)
  123. {
  124.     ModelessStuff_Show ();
  125. }
  126.  
  127. //----------
  128. void    DoModelessMoreStuff (
  129. AMApp*        self)
  130. {
  131.     ModelessBars_Show ();
  132. }
  133.  
  134. //----------
  135. void    DoInvokeAbout (
  136. AMApp*        self)
  137. {
  138.     if (GetAboutDialog ()) {
  139.         /* do something */
  140.     }
  141. }
  142.  
  143. //----------
  144. Boolean        DoAppCommand (
  145.     AMApp*        self,
  146.     long        inCommand)
  147. {
  148.     Boolean        result = true;
  149.  
  150.     switch (inCommand) {
  151.         case cmdNew:
  152.                 DoNew (self);
  153.             break;
  154.         case cmdOpen:
  155.                 DoOpen (self);
  156.             break;
  157.         case cmdClose:
  158.                 DoClose (self);
  159.             break;
  160.         case cmdQuit:
  161.                 DoQuit (self);
  162.             break;
  163.         case cmdModelessButtons:
  164.                 DoModelessButtons (self);
  165.             break;
  166.         case cmdModelessCheckboxes:
  167.                 DoModelessCheckboxes (self);
  168.             break;
  169.         case cmdModelessRadios:
  170.                 DoModelessRadios (self);
  171.             break;
  172.         case cmdModelessText:
  173.                 DoModelessText (self);
  174.             break;
  175.         case cmdModelessStuff:
  176.                 DoModelessStuff (self);
  177.             break;
  178.         case cmdModelessMoreStuff:
  179.                 DoModelessMoreStuff (self);
  180.             break;
  181.         case cmdInvokeAbout:
  182.                 DoInvokeAbout (self);
  183.             break;
  184.  
  185.         default:
  186.                 result = false;
  187.     } // case
  188.  
  189.     return result;
  190. }
  191.